Timm Bäder [Sat, 3 Dec 2016 10:09:58 +0000 (11:09 +0100)]
widget: Fix :parent property type
Parent widgets can now also be widgets, not just containers.
Timm Bäder [Wed, 30 Nov 2016 16:38:09 +0000 (17:38 +0100)]
testsuite: Stop testing style properties
Timm Bäder [Tue, 29 Nov 2016 17:32:43 +0000 (18:32 +0100)]
inspector: Don't try to access child props of non-containers
Timm Bäder [Wed, 23 Nov 2016 19:19:44 +0000 (20:19 +0100)]
widget: Remove gtk_widget_style_get_property
Timm Bäder [Tue, 22 Nov 2016 21:14:45 +0000 (22:14 +0100)]
spinbutton: Use widgets for up/down buttons
Timm Bäder [Tue, 15 Nov 2016 15:53:03 +0000 (16:53 +0100)]
switch: Use GtkLabels for on/off labels
Timm Bäder [Tue, 15 Nov 2016 15:49:41 +0000 (16:49 +0100)]
inspector: Show child widgets of widgets
Timm Bäder [Fri, 18 Nov 2016 09:02:50 +0000 (10:02 +0100)]
widget: Implement create_path for widgets with non-container parent
Timm Bäder [Fri, 18 Nov 2016 09:02:22 +0000 (10:02 +0100)]
widget: Unparent widgets in dispose()
If they have a non-container parent.
Timm Bäder [Fri, 18 Nov 2016 08:53:58 +0000 (09:53 +0100)]
widget: Check for containerness before calling container API
Timm Bäder [Fri, 18 Nov 2016 08:50:52 +0000 (09:50 +0100)]
widget: Implement map/unmap with child widgets
Once again, do what GtkContainer did before.
Timm Bäder [Fri, 18 Nov 2016 08:47:38 +0000 (09:47 +0100)]
widget: Implement show_all
Do what gtk_container_forall did: show_all all children, then the widget
itself.
Timm Bäder [Mon, 21 Nov 2016 16:04:20 +0000 (17:04 +0100)]
widget: Iterate over child widgets instead of gtk_container_forall
Timm Bäder [Fri, 18 Nov 2016 08:29:52 +0000 (09:29 +0100)]
widget: Add children and sibling pointers
and a (private) way to access them. We will later use these pointers to
manage children of non-container widgets and containers alike.
Timm Bäder [Wed, 4 Jan 2017 13:04:09 +0000 (14:04 +0100)]
combobox: Remove unused define
Balázs Meskó [Sat, 7 Jan 2017 10:18:25 +0000 (10:18 +0000)]
Update Hungarian translation
Benjamin Otte [Sat, 7 Jan 2017 01:05:26 +0000 (02:05 +0100)]
gtk-demo: Make icon counter work from ui file
Gets rid of update always being 1 frame late.
Benjamin Otte [Sat, 7 Jan 2017 00:59:23 +0000 (01:59 +0100)]
gtk-demo: Add GtkFishbowl
Avoids usage of GtkFixed where child properties eat up all the CPU time.
And that's kinda not what I want to benchmark.
Benjamin Otte [Fri, 6 Jan 2017 17:10:12 +0000 (18:10 +0100)]
vulkan: Reallocate descriptor sets
Because wee now reset the descriptor pool, we also need to reallocate
the descriptor sets.
Benjamin Otte [Fri, 6 Jan 2017 16:16:38 +0000 (17:16 +0100)]
vulkan: Keep vertex buffer around until cleanup
Don't just free it while the command buffer using it is still pending.
Benjamin Otte [Fri, 6 Jan 2017 15:31:03 +0000 (16:31 +0100)]
vulkan: Reset descriptor pool
We don't want the pool to reference images we're gonna destroy. Drivers
don't like that at all.
Benjamin Otte [Thu, 5 Jan 2017 12:37:58 +0000 (13:37 +0100)]
gsk: Don't use wildcards
Explicitly list all the shaders, so new ones get picked up properly and
cause the resource file to be regenerated (due to Makefile.am changing).
Benjamin Otte [Thu, 5 Jan 2017 12:11:02 +0000 (13:11 +0100)]
gsk: Have variables for resources
Instead of relying on --generate-dependencies and the resource file,
actually list the resources in Make variables.
Fixes make not building new shaders because they're not inside the
resource file.
Georges Basile Stavracas Neto [Fri, 6 Jan 2017 04:39:03 +0000 (02:39 -0200)]
vulkanrender: Create descriptor pools with correct descriptor number
Georges Basile Stavracas Neto [Fri, 6 Jan 2017 03:41:20 +0000 (01:41 -0200)]
vulkancontext: Improve debug output
Georges Basile Stavracas Neto [Fri, 6 Jan 2017 03:35:19 +0000 (01:35 -0200)]
vulkancontext: Never abort on validation layer debug
Validation layers should never interfere on application
execution.
Matthias Clasen [Fri, 6 Jan 2017 00:48:51 +0000 (19:48 -0500)]
Revert "Use CSS for styling links in labels"
This reverts commit
60a8769e7f0c952fdc8090b1ecd96cca00123ad9.
This needs more work to work properly.
Matthias Clasen [Thu, 5 Jan 2017 23:10:52 +0000 (18:10 -0500)]
Use CSS for styling links in labels
This was implemented only halfway, and was hardcoding the
underline. We don't need to do that anymore.
William Hua [Sat, 15 Oct 2016 20:19:59 +0000 (22:19 +0200)]
mir: paste clipboard data from content-hub
https://bugzilla.gnome.org/show_bug.cgi?id=775732
William Hua [Wed, 12 Oct 2016 20:56:01 +0000 (16:56 -0400)]
mir: copy clipboard data to content-hub
https://bugzilla.gnome.org/show_bug.cgi?id=775732
William Hua [Tue, 11 Oct 2016 20:53:48 +0000 (16:53 -0400)]
mir: connect to content-hub
https://bugzilla.gnome.org/show_bug.cgi?id=775732
William Hua [Fri, 14 Oct 2016 21:00:34 +0000 (17:00 -0400)]
mir: track focused window
https://bugzilla.gnome.org/show_bug.cgi?id=775732
William Hua [Tue, 11 Oct 2016 23:06:12 +0000 (19:06 -0400)]
mir: implement window properties
https://bugzilla.gnome.org/show_bug.cgi?id=775732
Matthias Clasen [Thu, 5 Jan 2017 21:36:14 +0000 (16:36 -0500)]
Make it possible to set style classes for label links
This makes it possible to style links in labels differently
in certain situations.
Kjartan Maraas [Wed, 4 Jan 2017 20:25:36 +0000 (21:25 +0100)]
Updated Norwegian bokmål translation.
Daniel Boles [Thu, 29 Dec 2016 00:43:18 +0000 (00:43 +0000)]
demos/icon-browser: increase default window size
...to get more than 1 row of icons to browse!
https://bugzilla.gnome.org/show_bug.cgi?id=776560
I've bumped the size a bit further, to 1024x768
Sébastien Wilmet [Fri, 25 Nov 2016 19:08:00 +0000 (20:08 +0100)]
docs: improve the documentation of GtkEntry:attributes
See the implementation of gtk_entry_create_layout():
pango_attr_list_splice() is used to add the PangoAttrList of the preedit
string. And that is done *after* applying the PangoAttrList of the
"attributes" property.
https://bugzilla.gnome.org/show_bug.cgi?id=776868
Georges Basile Stavracas Neto [Wed, 4 Jan 2017 18:02:44 +0000 (16:02 -0200)]
vulkan: Use LGPL v2
Georges Basile Stavracas Neto [Wed, 4 Jan 2017 17:37:02 +0000 (15:37 -0200)]
vulkanpushconstants: Don't report invalid ranges
Vulkan doesn't accept empty ranges, so simply don't report
them.
Georges Basile Stavracas Neto [Wed, 4 Jan 2017 17:14:21 +0000 (15:14 -0200)]
vulkan: Turn headers to LGPL
Benjamin Otte [Wed, 4 Jan 2017 17:38:40 +0000 (18:38 +0100)]
vulkan: Create required number of swapchain images
Wayland has minImageCount == 4, so us just creating 2 images is not very
nice. So we don't do that anymore.
Benjamin Otte [Wed, 4 Jan 2017 17:26:14 +0000 (18:26 +0100)]
gdkvulkan: Track if we reffed the display's vulkan data
When reffing the display fails in init, we were still trying to unref
it. Which obviously failed and spewed warnings to stderr.
Georges Basile Stavracas Neto [Tue, 3 Jan 2017 23:14:31 +0000 (21:14 -0200)]
wayland: Add support for Vulkan renderer
Mirror what's done with the X11 Vulkan renderer implementation,
with the addition of the extra Wayland window synchronization on
end_paint() override.
Georges Basile Stavracas Neto [Tue, 3 Jan 2017 23:11:57 +0000 (21:11 -0200)]
vulkancontext: Assume the window geometry when extents are bogus
When the current extent is -1, we should assume whatever size
the GdkWindow has.
Georges Basile Stavracas Neto [Tue, 3 Jan 2017 23:11:36 +0000 (21:11 -0200)]
vulkancontext: Fix header
Benjamin Otte [Sun, 1 Jan 2017 22:47:53 +0000 (23:47 +0100)]
vulkan: Modernize blend pipeline
- Rename from blit => blend
- Use instances
- Add clip versions
Benjamin Otte [Tue, 3 Jan 2017 22:34:53 +0000 (23:34 +0100)]
gtk-demo: queue_draw() when the color changes
Chun-wei Fan [Tue, 3 Jan 2017 07:16:32 +0000 (15:16 +0800)]
Visual Studio build: Update gsk project
A new Vulkan source was added, so this needs to be added to the projects.
Piotr Drąg [Fri, 30 Dec 2016 18:25:22 +0000 (19:25 +0100)]
gtkprintbackendfile: Correct PostScript capitalization
https://bugzilla.gnome.org/show_bug.cgi?id=776627
Benjamin Otte [Sun, 1 Jan 2017 18:52:18 +0000 (19:52 +0100)]
gsk: Add GskRepeatNode
Also add gtk_snapshot_push_repeat() and use that to draw backgrounds.
With that change, CSS background snapshots are created without Cairo
nodes.
Benjamin Otte [Sun, 1 Jan 2017 18:50:25 +0000 (19:50 +0100)]
css: Redo GtkCssAffects
We now have GTK_CSS_AFFECTS_CONTENT for properties that have an effect
on content rendering.
Using GTK_CSS_AFFECTS_ICON is wrong for icon-transform and icon-filter
as they don't change the icon, just how the icon is rendered, so we use
GTK_CSS_AFFECTS_CONTENT for those.
We also introduce GTK_CSS_AFFECTS_POSTEFFECT for opacity and filter -
properties that affect the whole drawing of the widget by applying an
effect after everything is said and done.
Benjamin Otte [Sun, 1 Jan 2017 12:40:13 +0000 (13:40 +0100)]
gsk: Turn GskTexture into a GObject
Benjamin Otte [Sat, 31 Dec 2016 22:09:35 +0000 (23:09 +0100)]
colorplane: Implement snapshot()
Benjamin Otte [Sat, 31 Dec 2016 21:58:15 +0000 (22:58 +0100)]
vulkan: Optimize getting textures
When we already have a texture or know we need to upload, just do that
instead of rendering to Cairo.
Emmanuele Bassi [Sun, 1 Jan 2017 11:10:33 +0000 (11:10 +0000)]
build: Require graphene-gobject
We need the GType wrappers around Graphene types, so we need to do a
dependency check on graphene-gobject-1.0, not graphene-1.0.
Benjamin Otte [Sat, 31 Dec 2016 13:14:26 +0000 (14:14 +0100)]
vulkan: Add support for color matrix nodes
@keyframes weee {
100% { filter: hue-rotate(1turn); }
}
.background {
animation: linear infinite 3s weee;
}
Benjamin Otte [Sat, 31 Dec 2016 13:13:32 +0000 (14:13 +0100)]
accellabel: Initialize allocation variable
I have no idea why gcc didn't catch this.
Benjamin Otte [Sat, 31 Dec 2016 12:49:43 +0000 (13:49 +0100)]
cssfiltervalue: Change node name
We're not just using this for icon filters, but for regular filters, so
the existing name is confusing.
Benjamin Otte [Sat, 31 Dec 2016 12:24:21 +0000 (13:24 +0100)]
vulkan: Make the effect renderer take matrix + offset
This is in preparation for the new color matrix node.
I don't think keeping support for a separate opacity shader is worth it.
Daniel Boles [Sat, 31 Dec 2016 13:27:15 +0000 (13:27 +0000)]
scrolledwindow: Fix func summary being cut off in bindings using doxygen
...which treats the first '.' in doc comments as the end of the summary.
So, e.g., in gtkmm, get_kinetic_scrolling() is currently summarised as
"Changes the behaviour of @scrolled_window wrt." Not very informative!
No need for a period there & anyway, the phrase "wrt to" is superfluous,
and we have space to actually say "with regard to", so just do that now.
Benjamin Otte [Sat, 31 Dec 2016 01:48:25 +0000 (02:48 +0100)]
css: Implement filter
So far, it's only implemented for widgets, not for gadgets.
Not sure how to do it for gadgets without conflicts for widget gadgets
yet...
Benjamin Otte [Sat, 31 Dec 2016 01:36:00 +0000 (02:36 +0100)]
css: Remove -gtk-icon-effect
-gtk-icon-filter replaces this now.
Benjamin Otte [Sat, 31 Dec 2016 00:29:14 +0000 (01:29 +0100)]
gtk: Replace -gtk-icon-effect with -gtk-icon-filter
Instead of
-gtk-icon-effect: dim;
-gtk-icon-effect: hilight;
we now use
-gtk-icon-filter: opacity(0.5);
-gtk-icon-filter: brightness(1.2);
respectively.
Benjamin Otte [Sat, 31 Dec 2016 00:15:52 +0000 (01:15 +0100)]
gtk: Implement -gtk-icon-filter
This uses the new GskColorMatrixNode to implement a filter that applies
to icons. It's meant to replace -gtk-icon-effect.
Benjamin Otte [Sat, 31 Dec 2016 00:14:59 +0000 (01:14 +0100)]
snapshot: Add gtk_snapshot_push_color_matrix()
So far, this is unused.
Benjamin Otte [Sat, 31 Dec 2016 00:13:19 +0000 (01:13 +0100)]
gsk: Add GskColorMatrixNode
This node essentially implements the feColorMatrix SVG filter. I got the
idea yesterday after looking at the opacity implementation.
It can be used for opacity (not sure if we want to) and to implement a
bunch of the CSS filters.
Benjamin Otte [Fri, 30 Dec 2016 05:46:34 +0000 (06:46 +0100)]
vulkan: Handle opacity nodes
Well, "handle" them actually. We still draw the node's child using
Cairo, but we apply the opacity manually now.
Benjamin Otte [Tue, 27 Dec 2016 21:47:34 +0000 (22:47 +0100)]
debugupdates: Draw without cairo node
Chris Mayo [Tue, 27 Dec 2016 16:14:09 +0000 (16:14 +0000)]
GtkAboutDialog: Fix formatting of example email address in html
Signed-off-by: Chris Mayo <aklhfex@gmail.com>
https://bugzilla.gnome.org/show_bug.cgi?id=776524
Matthias Clasen [Fri, 30 Dec 2016 15:20:16 +0000 (10:20 -0500)]
about dialog: Simplify the template a bit
Remove some unnecessary complications, like an extraneous
box, and some child property settings that are not needed.
Chun-wei Fan [Fri, 30 Dec 2016 07:10:12 +0000 (15:10 +0800)]
Visual Studio builds: Fix .pc generation
A space was missed...
Chun-wei Fan [Fri, 30 Dec 2016 06:52:00 +0000 (14:52 +0800)]
Visual Studio builds: Mention about Vulkan builds
Let people know what is needed for Vulkan builds.
Chun-wei Fan [Fri, 30 Dec 2016 06:42:38 +0000 (14:42 +0800)]
Visual Studio builds: Support Vulkan builds
This will assume that the Vulkan SDK can be found in the INCLUDE/LIB paths
that are used by the Visual Studio compiler.
Chun-wei Fan [Fri, 30 Dec 2016 04:46:55 +0000 (12:46 +0800)]
Visual Studio builds: Clean up project files
There are items in there that can be combined, as there are mostly no
differences between x64 and Win32 configs for source/data file generation.
Chun-wei Fan [Fri, 30 Dec 2016 03:17:06 +0000 (11:17 +0800)]
Visual Studio builds: Remove the Broadway projects
They are not used anymore, so we ought to remove them
Chun-wei Fan [Fri, 30 Dec 2016 03:09:46 +0000 (11:09 +0800)]
Visual Studio builds: Drop the Broadway projects
Since the status of the GDK broadway backend is more or less unsupported,
drop the projects that build gtk4-broadwayd and gdk-broadway, and update
the projects to not to refer to them.
However, keep the Broadway configs for now as we will later transform
them to become configs for Vulkan, so bascially besides "installation"
parts and output settings, they will do the same as their Release|Debug
counterparts with no support for Broadway.
Chun-wei Fan [Thu, 29 Dec 2016 17:08:07 +0000 (01:08 +0800)]
Visual Studio builds: Include Vulkan sources in GSK
...but disable them for now. Configs will be added for the projects to
support Vulkan-enabled builds which will then enable the builds of these
sources. Extra commands and items will be needed for the GSK resources
along with ensuring GSK_RENDERER_GSK being defined for the build of GDK,
GDK-Win32 and GSK so that the builds of Vulkan-enabled builds can be done
properly.
Filter out the Vulkan sources from the 'dist hook' rules in
gsk/Makefile.am as we don't want to in turn include them twice in the
projects when the 'make dist' is performed on a system with Vulkan
builds enabled.
Stas Solovey [Thu, 29 Dec 2016 16:23:12 +0000 (16:23 +0000)]
Update Russian translation
(cherry picked from commit
c7dce1018b73621ca50a086430809a43f50909b4)
Matthias Clasen [Thu, 29 Dec 2016 16:07:05 +0000 (11:07 -0500)]
Avoid a possible crash in ::activate-url handlers
If the signal handler ends up changing the label text,
the link is no longer around to update the css node.
Check for this possibility to avoid a crash here.
Mario Blättermann [Thu, 29 Dec 2016 10:40:32 +0000 (10:40 +0000)]
Update German translation
Chun-wei Fan [Wed, 28 Dec 2016 14:37:01 +0000 (22:37 +0800)]
gsk: Fix build on Visual Studio
One cannot use #if...#endif within macro calls in Visual Studio and
possibly other compilers, and there are more uses of VLAs that need to be
replaced with g_newa().
There were also checks for the clip type in gskvulkanrenderpass.c which
were possibly not done right (using the address of the type value to check
for a type value), which triggered errors as one is attempting to compare
a pointer type to an enum/int type.
https://bugzilla.gnome.org/show_bug.cgi?id=773299
Chun-wei Fan [Wed, 28 Dec 2016 14:34:04 +0000 (22:34 +0800)]
gdk/gdkvulkancontext.c: Avoid VLAs
During the drive to enable Vulkan context creation on Windows, some more
VLAs were found here. Replace them with g_newa().
https://bugzilla.gnome.org/show_bug.cgi?id=773299
Chun-wei Fan [Wed, 28 Dec 2016 14:25:07 +0000 (22:25 +0800)]
GDK/Win32: Support Vulkan context creation
This adds support to the GDK Win32 backend so that we can support Vulkan
context creation for use in the GSK Vulkan renderer, so that we can test
it on Windows platforms as well.
https://bugzilla.gnome.org/show_bug.cgi?id=776544
Chun-wei Fan [Mon, 26 Dec 2016 04:40:36 +0000 (12:40 +0800)]
gsk/gskrendernodeimpl.c: Avoid VLAs
Use g_newa() instead of VLAs, as VLAs may never be supported by some
compilers as it became optional in C11 and there are concerns about their
implementations in compilers that do support it.
https://bugzilla.gnome.org/show_bug.cgi?id=773299
Gábor Kelemen [Tue, 27 Dec 2016 23:08:22 +0000 (23:08 +0000)]
Update Hungarian translation
Gábor Kelemen [Tue, 27 Dec 2016 22:57:31 +0000 (22:57 +0000)]
Update Hungarian translation
Benjamin Otte [Mon, 26 Dec 2016 23:33:34 +0000 (00:33 +0100)]
gsk: Add GSK_RENDERING_MODE=full-redraw
Forces a full redraw every frame.
This is done generically, so it's supported on every renderer.
For widget-factory first page (with the spinner spinning and progressbar
pulsing), I get these numbers per frame:
action clipped full redraw
snapshot 0ms 7-10ms
cairo rendering 0ms 10-15ms
Vulkan rendering 3-5ms 18-20ms
Vulkan expected * 0ms 1-2ms
GL rendering unsupported 55-62ms
* expected means disabling rendering of unsupported render nodes,
instead of doing fallback drawing. So it overestimates the performance,
because borders and box-shadows are disabled.
Benjamin Otte [Mon, 26 Dec 2016 23:18:52 +0000 (00:18 +0100)]
vulkan: Only render minimal region
It's faster to render once for every rectangle in the clip region than
rendering the outline of the clip region.
Especially because this reduces the time necessary to build up the frame
data.
In widget-factory (where we have 3 rectangles), this leads to a 5x
speedup in the rendering time rendering alone.
Snapshotting time goes from 10ms to ~1ms, which is another huge
improvement.
Benjamin Otte [Mon, 26 Dec 2016 21:24:22 +0000 (22:24 +0100)]
gdkvulkan: Track changes per swapchain image
... and use those in begin_frame() to ensure all of the invalid area
gets invalidated.
Benjamin Otte [Mon, 26 Dec 2016 16:11:13 +0000 (17:11 +0100)]
vulkan: Handle linear gradients
Note: We interpolate premultiplied colors as per the CSS spec. This i
different from Cairo, which interpolates unpremultiplied.
So in testcases with translucent gradients, it's actually Cairo that is
wrong.
Benjamin Otte [Mon, 26 Dec 2016 16:09:18 +0000 (17:09 +0100)]
tests: Add linear gradient test
Benjamin Otte [Mon, 26 Dec 2016 16:08:06 +0000 (17:08 +0100)]
tests: Add a patternspec argument for test creation
That way, I don't need to recreate all the tests I don't care about.
This is particularly useful when I want to change the size of the
testcase.
Benjamin Otte [Mon, 26 Dec 2016 16:07:24 +0000 (17:07 +0100)]
tests: Make rendernode --dump-variant actually work
Benjamin Otte [Mon, 26 Dec 2016 16:06:10 +0000 (17:06 +0100)]
gsk: Add missing Mozilla copyright header
I stole one of their shader functions, and if I steal, I might as well
do it right.
Benjamin Otte [Mon, 26 Dec 2016 16:04:56 +0000 (17:04 +0100)]
css: Handle repeating gradients with only one offset
Example:
repeating-linear-gradient(red 50%, blue 50%)
Those gradients in Firefox draw a solid image of the last color, so do
the same here.
Benjamin Otte [Mon, 26 Dec 2016 16:04:01 +0000 (17:04 +0100)]
gsk: Insist on ordered color stops
I don't want to sort them later for the shader preparation, so make
sure they come in ordered.
Benjamin Otte [Mon, 26 Dec 2016 13:49:34 +0000 (14:49 +0100)]
vulkan: Fix coordinate setup
This makes rendering textures work when the top left of the rendered
texture is not at (0, 0).
Benjamin Otte [Sun, 25 Dec 2016 18:51:30 +0000 (19:51 +0100)]
tests: Make sure number of runs is 1.
Daniel Boles [Mon, 26 Dec 2016 10:57:51 +0000 (10:57 +0000)]
Box: Restore an accidentally deleted comment
Also, split a MAX() onto its own line to match the others.
Daniel Boles [Sun, 25 Dec 2016 23:16:14 +0000 (23:16 +0000)]
Box: avoid recalc/reassignments, improve var names
Homogeneous branches repeated the calculation/assignment of the initial
space available to children. This avoids that by shuffling some code.
Perhaps more importantly, in doing that, I ended up with some ambiguous
names, and Company and I realised how vague the pre-existing naming was.
"size" becomes "extra_space", as this is what it represents. Conversely,
"extra" becomes "size_given_to_child" (albeit still given out in two
different ways depending on whether the Box is homogeneous). My hope is
that these sections of code are now somewhat less baffling than before!